5546d03c0a3cdf06a3453d32924c6be16b3e868d,plugins/groovy/src/org/jetbrains/plugins/groovy/lang/editor/actions/moveUpDown/Mover.java,Mover,move,#Editor#PsiFile#,49
Before Change
protected abstract boolean checkAvailable(Editor editor, PsiFile file);
public final void move(Editor editor, final PsiFile file) {
if (toMove == null || toMove2 == null) return;
final Document document = editor.getDocument();
final int start = getLineStartSafeOffset(document, toMove.startLine);
final int end = getLineStartSafeOffset(document, toMove.endLine);
range1 = document.createRangeMarker(start, end);
String textToInsert = document.getCharsSequence().subSequence(start, end).toString();
if (!StringUtil.endsWithChar(textToInsert, '\n')) textToInsert += '\n';
final int start2 = document.getLineStartOffset(toMove2.startLine);
final int end2 = getLineStartSafeOffset(document, toMove2.endLine);
String textToInsert2 = document.getCharsSequence().subSequence(start2, end2).toString();
if (!StringUtil.endsWithChar(textToInsert2, '\n')) textToInsert2 += '\n';
range2 = document.createRangeMarker(start2, end2);
if (range1.getStartOffset() < range2.getStartOffset()) {
range1.setGreedyToLeft(true);
range1.setGreedyToRight(false);
After Change
final int start2 = document.getLineStartOffset(toMove2.startLine);
final int end2 = getLineStartSafeOffset(document, toMove2.endLine);
RangeMarker range2 = document.createRangeMarker(start2, end2);
String textToInsert = extractTextToInsert(document, start, end, end2 != document.getTextLength());